<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.JS延迟加载的方式有哪些？（5）
        // script放在body标签后面
        // defer属性

        // 2.前端 JavaScript 中的 ECMAScript、DOM、BOM 的含义；
        // ECMAScript-------ECMA组织制定的标准
        // DOM------- 文档对象模型
        // BOM------- 浏览器对象模型

        // 3.JavaScript 的数据类型有哪些？
        // String number Boolean null undefined Array Object Symbol

        // 4.如何进行数据类型的判断？
        // typeof  instanceof Object.prototype.toString.call

        // 5.null 和 undefined 的区别？什么时候会得到 undefined？
        // 6.如何理解 null == undefined 返回 true，null === undefined 返回 false？
        // null == undefined 返回true 是他们的值相等
        // null ===undefined 返回false 是因为类型不是相等的

        // 7.使用 continue 或 break 终止循环时，两种方式的区别是？
        // continue 是符合条件跳出循环
        // break 是符合条件终止循环

        // 8.如何判断字符串内是否包含指定字符？
        // indexOf lastIndexOf  用字符串方法查询

        // 9.请尽量列举出数组的方法，并且注明哪些方法会修改原数组，哪些不会；
        // 修改原数组
        //     reverse
        //     splice
        //     push
        //     pop
        //     unshift
        //     shift
        //     sort    

        // 不修改原数组
        //     slice
        //     concat
        //     join    
        //     indexOf
        //     lastIndexOf

        // 10. var、let、const 区别？
        // let不支持变量提升，var支持变量提升
        // let不支持重复声明，var支持重复声明
        // let存在块级作用域，var不存在块级作用域 
        // const不允许更改，不支持重复声明，存在块级作用域

        // 12. 如何在 DOM2 级事件绑定上传递参数？
        // addEventListener('click',function(e){
        //     e.target
        // })

        // 13. 怎么阻止事件的进一步传播和默认事件？
        // event. preventDefault()

        // 14. 如何添加一个一次性事件？
        // 延时定时器

        // 15. 同步和异步的区别?
        // js会处理完同步任务在处理异步任务

        // 16. AJAX是什么？AJAX是如何为页面注入灵魂？
        // AJAX是一种在无需刷新加载整个网页的情况下，能够更新部分网页内容的技术
        // 通过XmlHttpRequest对象来向服务器发异步请求，从服务器获得数据，然后用javascript来操作DOM而更新页面。

        // 17. 开发阶段的 AJAX 跨域有哪些解决方法，jsonp 的原理是什么
        //后端解决跨域(后端设置响应头，设置白名单)"Access-Control-Allow-Origin" :"指定的域名地址"|| *
        // 前端解决跨域 jsonp  原理：利用script的src属性，不考虑跨域问题

        // 18. 请描述一下cookies，sessionStorage和localStorage的区别
        // cookies存储大小为4kb左右，超出部分会被裁切
        // localStorage sessionStorage 存储大小在5M左右，采取键值对形式进行存储
        // localStorage  本地存储  用于长久保留整个网页的数据，保存的数据没有过期时间，直到手动去除浏览器缓存
        // sessionStorage 会话存储 用于保存临时同一个窗口的数据，关闭窗口之后数据就会被删除

        // 19. 讲一下常见的异步场景，以及传统异步的诟病和解决方案

        // 20. 数组如何实现去重？请提供至少2种方法
        // indexOf == lastindexOf
        // 创建一个新数组 indexOf ==-1 ，posh进新数组里面
        
        // 21. 讲一下对基本数据类型 和 复杂/引用数据类型的理解？
        
        // 22. this 的指向如何确定？
        //谁调用指向谁

        // 23. 谈谈对垃圾回收机制的认识
        // 24. 什么是回流重绘，如何进行优化？
        // 回流：当元素因改变了自身的宽高，布局，显示或隐藏，或元素内部的文字结构发生变化，导致需要重新构建页面的时候，回流就产生了。
        // 重绘：当一个元素自身的宽高，布局，及显示或隐藏没有改变，而只是改变了元素的外观风格的时候，就产生了重绘

        // 25. 请解释什么是事件代理
        // 事件代理就是把原本需要绑定在子元素上的事件委托给父元素,事件代理的原理是冒泡机制。
        
        // 26. 谈谈你对渐进增强和优雅降级的理解(补充)
    </script>
</body>

</html>